package com.doubao.user.mapper;

import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import com.doubao.user.entity.UserStatistics;
import org.apache.ibatis.annotations.Mapper;
import org.apache.ibatis.annotations.Param;

/**
 * 用户统计Mapper接口
 */
@Mapper
public interface UserStatisticsMapper extends BaseMapper<UserStatistics> {

    /**
     * 增加用户聊天次数
     *
     * @param userId 用户ID
     * @return 影响行数
     */
    int increaseChatCount(@Param("userId") Long userId);

    /**
     * 增加用户消息数
     *
     * @param userId 用户ID
     * @param count  增加数量
     * @return 影响行数
     */
    int increaseMessageCount(@Param("userId") Long userId, @Param("count") Integer count);

    /**
     * 增加用户token用量
     *
     * @param userId 用户ID
     * @param tokens token数量
     * @return 影响行数
     */
    int increaseTokenUsage(@Param("userId") Long userId, @Param("tokens") Long tokens);

    /**
     * 增加用户智能体数量
     *
     * @param userId 用户ID
     * @return 影响行数
     */
    int increaseDeviceCount(@Param("userId") Long userId);

    /**
     * 减少用户智能体数量
     *
     * @param userId 用户ID
     * @return 影响行数
     */
    int decreaseDeviceCount(@Param("userId") Long userId);

    /**
     * 增加用户收藏数量
     *
     * @param userId 用户ID
     * @return 影响行数
     */
    int increaseCollectionCount(@Param("userId") Long userId);

    /**
     * 减少用户收藏数量
     *
     * @param userId 用户ID
     * @return 影响行数
     */
    int decreaseCollectionCount(@Param("userId") Long userId);

    /**
     * 更新用户最后活跃时间
     *
     * @param userId 用户ID
     * @return 影响行数
     */
    int updateLastActiveTime(@Param("userId") Long userId);
}